/**
 * @program: leetcode055
 * @author: JCM
 * @create: 2023-02-24 19:30
 * @description:
 **/
public class Main {
    public boolean canJump(int[] nums) {
        // 可达到的最远距离
        int far = 0;
        for(int i = 0; i < nums.length; i++) {
            // 当 i < far 时，此时还没有到达最远距离
            if(i <= far) {
                far = Math.max(far,i+nums[i]);
            }
            // far 一旦超过 nums.length-1 表示可以到达此位置
            if(far >= nums.length-1) {
                return true;
            }
        }
        return false;
    }
}
